#lightbox_overlay {
    background-color: hsl(227, 40%, 16%);

    .image-preview {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 100%;
        height: calc(100% - 65px - 95px);
        margin: 0px;

        background-size: contain;
        background-repeat: no-repeat;
        background-position: center center;

        img {
            max-height: 100%;
            max-width: 100%;

            background-color: hsl(0, 0%, 100%);
            background-image:
                -moz-linear-gradient(45deg, hsl(0, 0%, 80%) 25%, transparent 25%),
                -moz-linear-gradient(-45deg, hsl(0, 0%, 80%) 25%, transparent 25%),
                -moz-linear-gradient(45deg, transparent 75%, hsl(0, 0%, 0%) 75%),
                -moz-linear-gradient(-45deg, transparent 75%, hsl(0, 0%, 0%) 75%);
            background-image:
                -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, hsl(0, 0%, 80%)), color-stop(.25, transparent)),
                -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.25, hsl(0, 0%, 80%)), color-stop(.25, transparent)),
                -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.75, transparent), color-stop(.75, hsl(0, 0%, 80%))),
                -webkit-gradient(linear, 0 0, 100% 100%, color-stop(.75, transparent), color-stop(.75, hsl(0, 0%, 80%)));

            -moz-background-size: 20px 20px;
            background-size: 20px 20px;
            -webkit-background-size: 20px 20px;

            background-position: 0 0, 50px 0, 50px -50px, 0px 50px;
        }

        canvas {
            cursor: pointer;
        }
    }

    .exit {
        float: right;

        color: hsla(0, 0%, 100%, 0.8);
        font-size: 2rem;
        font-weight: 200;
        margin: 24px 20px 0px 0px;

        transform: scaleY(0.75);
        font-weight: 300;

        opacity: 0;
        pointer-events: none;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    &.show .exit {
        pointer-events: auto;
        opacity: 1;
    }

    .image-info-wrapper {
        background-color: transparent;
    }

    .image-description,
    .image-actions {
        float: left;
        margin: 20px 20px;
    }

    .image-actions {
        float: right;

        .lightbox-canvas-trigger {
            display: inline-block;
            vertical-align: top;

            min-width: 75px;

            margin: 0px;
            margin-right: 5px;
            padding: 0px 5px;

            border-radius: 4px;

            border: 1px solid hsla(0, 0%, 100%, 0.6);

            text-align: center;
            color: hsl(0, 0%, 100%);

            cursor: pointer;

            transition: all 0.3s ease;

            &:hover {
                background-color: hsl(0, 0%, 100%);
                border: 1px solid hsl(0, 0%, 100%);
                color: hsl(227, 40%, 16%);
                opacity: 1;
            }

            .status {
                margin-top: -7px;

                &::after {
                    content: attr(data-disabled);
                    text-transform: uppercase;

                    opacity: 0.7;
                }
            }

            &.enabled .status::after {
                content: attr(data-enabled);
            }

            .title {
                font-weight: 600;
            }
        }

        .button {
            font-size: 0.9rem;
            min-width: inherit;
            padding: 4px 10px;
            border: 1px solid hsla(0, 0%, 100%, 0.6);
            background-color: transparent;
            color: hsl(0, 0%, 100%);
            border-radius: 4px;
            text-decoration: none;
            display: inline-block;
            margin: 0px 5px;

            &:hover {
                background-color: hsl(0, 0%, 100%);
                border-color: hsl(0, 0%, 100%);
                color: hsl(227, 40%, 16%);
            }
        }
    }

    .image-description {
        width: 100%;
        /* approx width of screen minus action buttons on the side. */
        max-width: calc(100% - 450px);
        /* add some extra margin top and remove some bottom to keep the
        height the same. and vertically center the text with the buttons. */
        margin-top: 25px;
        margin-bottom: 15px;

        font-size: 1.3rem;
        color: hsl(0, 0%, 100%);

        .title {
            display: inline-block;
            vertical-align: top;

            font-weight: 400;
            line-height: normal;
            max-width: calc(100% - 110px);

            /* Required for text-overflow */
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .user {
            max-width: 200px;
            display: inline-block;
            vertical-align: top;
            font-weight: 300;
            line-height: normal;
            text-overflow: ellipsis;
            overflow: hidden;
            white-space: pre;

            &::before {
                margin-right: 5px;
                content: "\2014";
            }
        }
    }

    .player-container {
        height: calc(100% - 65px - 95px);
        display: flex;
        text-align: center;
        justify-content: center;
        align-items: center;

        iframe {
            /* maintain 16:9 ratio. */
            width: calc((100vh - 65px - 95px) * 16 / 9);
            height: 100%;
            margin: auto;
        }
    }

    .center {
        .arrow {
            display: inline-block;
            vertical-align: top;
            margin-top: 25px;
            padding: 5px 10px;

            color: hsl(0, 0%, 100%);
            font-size: 1.8em;
            font-weight: 100;

            transform: scaleY(2);
            cursor: pointer;

            opacity: 0.5;
            transition: all 0.3s ease;

            &:hover {
                opacity: 1;
            }
        }

        .image-list {
            position: relative;
            display: inline-block;
            padding: 15px 0px 12px 0px;
            height: 50px;
            font-size: 0px;

            max-width: 40vw;
            overflow: hidden;
            white-space: nowrap;

            .image {
                display: inline-block;
                vertical-align: top;
                width: 50px;
                height: 50px;
                margin: 0px 2px;

                background-color: hsla(0, 0%, 94%, 0.2);
                opacity: 0.5;

                background-size: cover;
                background-position: center;
                cursor: pointer;

                &.selected {
                    opacity: 1;
                }
            }
        }
    }
}

@media only screen and (min-width: 320px) and (max-width: 736px) {
    #lightbox_overlay {
        .image-actions {
            float: left;
            margin-top: 0;
        }

        .image-description {
            max-width: calc(100% - 100px);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            margin-bottom: 5px;

            .title {
                max-width: calc(100% - 70px);
            }
        }

        .center .image-list {
            max-width: 80vw;
        }

        .player-container iframe {
            /* maintain 16:9 ratio. */
            width: 100%;
            height: calc((100vw) * 9 / 16);
            margin: auto;
        }

        .image-preview {
            height: calc(100% - 101px - 95px);
        }
    }
}
